//package work.rightAnswer;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//
//class Node {
//    public int val;
//    public List<Node> neighbors;
//    public Node() {
//        val = 0;
//        neighbors = new ArrayList<Node>();
//    }
//    public Node(int _val) {
//        val = _val;
//        neighbors = new ArrayList<Node>();
//    }
//    public Node(int _val, ArrayList<Node> _neighbors) {
//        val = _val;
//        neighbors = _neighbors;
//    }
//}
//
//class Solution {
//    //对于图的这种克隆类题目，很重要的一点是保证节点的单例，所以，这里采用HashMap key:原节点 value：克隆节点
//    //同时HashMap还有防止重复入队的功能
//    HashMap<Node,Node> map = new HashMap<>();
//
//    //本方法：克隆图 返回值 当前参数节点的克隆节点
//    public Node cloneGraph(Node node) {
//        if(node==null){
//            return null;
//        }
//        //终止条件：当前节点已经遍历过了
//        if(map.containsKey(node)){
//            return map.get(node);
//        }
//
//        //当前节点处理(入哈希表)
//        map.put(node,new Node(node.val));
//
//        //这次使用dfs深度优先遍历，采取递归方式
//        for (Node neighbor : node.neighbors) {
//            map.get(node).neighbors.add(cloneGraph(neighbor));
//        }
//
//        return map.get(node);
//    }
//}